package com.qiaoba.module.system.converter;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.qiaoba.module.system.entity.SysConfig;
import com.qiaoba.module.system.entity.dto.SysConfigDTO;
import com.qiaoba.module.system.entity.param.SysConfigParam;

/**
 * 参数配置 类型转换
 *
 * @author ailanyin
 * @date 2023-09-09 18:19:58
 */
public class SysConfigConverter {

    public static SysConfig dto2Entity(SysConfigDTO dto) {
        SysConfig sysConfig = new SysConfig();
        sysConfig.setConfigId(dto.getConfigId());
        sysConfig.setConfigName(dto.getConfigName());
        sysConfig.setConfigKey(dto.getConfigKey());
        sysConfig.setConfigValue(dto.getConfigValue());
        sysConfig.setConfigType(dto.getConfigType());
        sysConfig.setRemark(dto.getRemark());
        return sysConfig;
    }

    public static Wrapper<SysConfig> param2Wrapper(SysConfigParam param) {
        LambdaQueryWrapper<SysConfig> wrapper = new LambdaQueryWrapper<>();
        wrapper
                .orderByDesc(SysConfig::getCreateTime)
                .like(StrUtil.isNotBlank(param.getConfigName()), SysConfig::getConfigName, param.getConfigName())
                .like(StrUtil.isNotBlank(param.getConfigKey()), SysConfig::getConfigKey, param.getConfigKey())
                .eq(StrUtil.isNotBlank(param.getConfigType()), SysConfig::getConfigType, param.getConfigType());
        return wrapper;
    }

}
